//go:build wireinject

package main

import (
	"wire/internal/biz"
	"wire/internal/cli"
	"wire/internal/data"
	"wire/internal/data/repo"
	"wire/internal/server"
	"wire/internal/service"

	"gitee.com/go-mod/framework/app"
	"github.com/google/wire"
)

// InitApp
func InitApp() (*app.App, func(), error) {
	panic(wire.Build(app.NewApp, server.ProviderSet, service.ProviderSet, biz.ProviderSet, repo.ProviderSet, data.ProviderSet))
}

// InitCli
func InitCli() (*app.Cli, func(), error) {
	panic(wire.Build(app.NewCli, cli.ProviderSet, service.ProviderSet, biz.ProviderSet, repo.ProviderSet, data.ProviderSet))
}
